const HtmlWebpackPlugin = require("html-webpack-plugin");



module.exports = {
    entry:'./src/index.js',
    output:{
        filename:'js/built.js',
        path:resolve(__dirname,'public')
    },
    module:{
        rules:[
            {
                //  使用 // eslint-disable-next-line    忽略下一行的警告
                test:/.js$/,
                exclude:/node_modules/,
                // 优先执行
                enforce:'pre',
                loader:'eslint-loader',
                option:{
                    // 自动修复
                    fix:true,
                }
            },
            /*
                js 兼容处理 babel-loader @babel/core (核心库) 
                    1. 基本js兼容性处理 --> @babel/preset
                        问题:只能转换基本的语法,入Promise等高级语法不能转化
                    2. 全部js兼容处理  --> @babel/polyfill (直接import引入)
                        问题:体积大
                    3.按需加载 --> core-js
             */
            {
                test:/\.js$/,
                exclude:/node_modules/,
                loader:'babel-loader',
                options:{
                    preset:[
                        '@babel/preset-env',
                        {
                            // 按需加载
                            useBuiltIns:'usage',
                            // 指定core-js版本
                            corejs:{
                                version:3
                            },
                            // 指定兼容到哪个版本的浏览器
                            target:{
                                chrome:'60',
                                // ....
                            }
                        }
                    ]
                }
            }
        ]
    },
    plugins:[
        new HtmlWebpackPlugin({
            template:'./src/index.html',
            // 压缩html代码
            minify:{
                // 移除空格
                collapseWhitespace:true,
                // 移除注释
                removeComments:true,
            }
        })
    ]
}